# coding=utf8

# Copyright 2018 JDCLOUD.COM
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# NOTE: This class is auto generated by the jdcloud code generator program.

from jdcloud_sdk.core.jdcloudrequest import JDCloudRequest


class UpdateLoadBalancerRequest(JDCloudRequest):
    """
    更新负载均衡信息
    """

    def __init__(self, parameters, header=None, version="v1"):
        super(UpdateLoadBalancerRequest, self).__init__(
            '/regions/{regionId}/loadBalancers/{loadBalancerId}', 'PATCH', header, version)
        self.parameters = parameters


class UpdateLoadBalancerParameters(object):

    def __init__(self, regionId,loadBalancerId,):
        """
        :param regionId: Region ID
        :param loadBalancerId: LB ID
        """

        self.regionId = regionId
        self.loadBalancerId = loadBalancerId
        self.loadBalancerName = None
        self.action = None
        self.description = None
        self.domainEnable = None
        self.deleteProtection = None
        self.privateIpAddress = None

    def setLoadBalancerName(self, loadBalancerName):
        """
        :param loadBalancerName: (Optional) LoadBalancer的名称,只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符
        """
        self.loadBalancerName = loadBalancerName

    def setAction(self, action):
        """
        :param action: (Optional) 启用或停止LoadBalancer，取值为Start(启用)或Stop(停止)
        """
        self.action = action

    def setDescription(self, description):
        """
        :param description: (Optional) LoadBalancer的描述信息,允许输入UTF-8编码下的全部字符，不超过256字符
        """
        self.description = description

    def setDomainEnable(self, domainEnable):
        """
        :param domainEnable: (Optional) 是否绑定域名，包括外网和内网，缺省为不改变原值
        """
        self.domainEnable = domainEnable

    def setDeleteProtection(self, deleteProtection):
        """
        :param deleteProtection: (Optional) 删除保护，取值为True(开启)或False(关闭)，默认为False
        """
        self.deleteProtection = deleteProtection

    def setPrivateIpAddress(self, privateIpAddress):
        """
        :param privateIpAddress: (Optional) 变更loadBalancer的vip地址，新地址只允许是loadBalancer本子网中的空闲ip地址，缺省为不改变原值
        """
        self.privateIpAddress = privateIpAddress

